CS487/ CS587: Introduction to Cryptography
George Mason University, Computer Science, Fall 2025
Instructor: Prof. Foteini Baldimtsi (foteini@gmu.edu)
Office Hours: Mondays 2:30PM - 4:00PM, ENG 5333
Lectures: Mondays 4:30PM-7:10PM, Location: Horizon 1012
Class website: https://www.baldimtsi.com/teaching/crypto_f25
Teaching Assistant: Shuhan Mirza (mshuhan@gmu.edu),
Office hours: Tuesdays 4pm-5pm in ENGR 4456
Fridays 4pm-5pm on zoom (link on piazza/canvas)
The course will provide an introduction to modern cryptography. This is a theory class, we will learn how to properly define security in a formal manner, and how to prove that our constructions are secure. We will cover many practical topics, such as how to correctly use block ciphers and hash functions for the most common tasks: encryption and message authentication, the differences between public key cryptography and symmetric key cryptography, and a few ways to build public key encryption and signatures. In addition, and if time permits, we will also cover some recent topics in cryptography, such as the use of blockchains for crypto currencies (i.e. Bitcoin), zero-knowledge proofs of knowledge, and searching on encrypted databases.
Objectives: The main objectives are to convey the importance of provable security, to teach students how to use cryptographic tools in a way that they can prove it is secure, to provide students with the ability to decide whether a protocol is secure, and to demonstrate the range of what can be achieved with provable security.
Course Outcomes: Students taking this class will be able to: (a) understand the security properties achieved by common cryptographic mechanisms such as encryption or digital signatures, (b) be familiar with a number of cryptographic protocols (toolbox) available to solve a variety of problems, (c) gain some experience on how cryptographic tools are used to secure modern systems such as cryptocurrencies.
Prerequisites: The prerequisites for the class are CS 310, CS 330 and STAT 344.
Although we will learn about practical topics in cryptography, students will need some level of mathematical maturity, i.e. being familiar with concepts in probability theory (computation of expectation, conditional probability etc) and complexity theory (Turing machines, NP-completeness etc) would be helpful for an easier understanding of formal security definitions and proofs. This is not a course about computer hacking or computer security.
Communications: We will use Piazza to communicate with you. If you have a question about the course you should: (a) Come to office hours, OR (b) Post on Piazza. We have already set up different tags for HW problems and lectures. Please don't use private posts/emails to ask technical questions. The rest of the class is probably also interested in your question, so make it public!
Lectures: The class will meet in person once a week on Mondays. I use an electronic whiteboard during lecture and all notes are uploaded on canvas after class. I highly recommend asking questions during lecture and I will often ask questions and give short problems to solve in a group fashion during class.
Class Material: All class material (slides, notes, videos etc) will be posted on Canvas.
Assignment Submission and Late Policy: We will have 10 sets of assigned homework problems (roughly weekly). Assignments will be posted on Canvas on Tuesday's and solutions have to be submitted on Canvas by next Tuesday 11:59pm. No credit will be given to late submissions. To be fair with everyone in class no exception will be made to the rule above. The two lowest HW grades will be dropped thus you have the option to skip up to 2 HWs in case you are sick, or have other responsibilities. HWs will sometimes include bonus problems.
Quizzes: We will have weekly quizzes (most of the weeks) that will take place at the beginning of the class, electronically on Canvas. You need to have an electronic device with you in class (laptop, tablet, smartphone) with access to Canvas. If you need special accommodations please contact the instructor in advance. Similar to HWs the two lowest grades will be dropped, so it is OK if you need to miss up to 2 classes.
Graduate Students (CS 587): Graduate students will be given an extra HW problem to solve in some of the assignments. They will also have to solve an extra problem in both midterm and final and will have to independently study some additional material.
Text Book: Katz and Lindell. Introduction to modern cryptography, Third Edition. (Required).
Alternative readings (available online for free) listed below.
A Graduate Course in Applied Cryptography, Dan Boneh, Victor Shoup
Cryptography Primitives and Protocols, Aggelos Kiayias
The Joy of Cryptography, Mike Rosulek
A course on Cryptography, Rafael Pass & abhi shelat
Cryptography, an introduction, Nigel Smart
Introduction to Modern Cryptography, Mihir Bellare & Phil Rogaway
Grading Policy
Assignments: 15% (~10 assignments, two lowest grades dropped)
Quizzes: 10% (~10 quizzes, two lowest grades dropped)
Midterm: 35% or 40%
Final: 35% or 40% (The highest grade between midterm/final will count for 40% and the lowest for 35%).
AI tools policy: You are forbidden from asking an AI to solve any of the problems for this class. You are forbidden to upload or paste any assignment materials into an AI. You may only ask an AI the same sort of general questions you would ask a peer. For the purposes of the GMU CS Honor Code <https://cs.gmu.edu/resources/honor-code/>, an AI is considered "someone else" who is not an instructor or teaching assistant.
Honor code: All students must adhere to the GMU Honor Code. You can discuss lecture material with other students in class but you have to work on the assignments alone. More specifically: (1) You must work on the homework problems and write your solutions completely on your own, without looking at other people’s write-ups. (2) You are welcome to use any textbooks, online sources, blogs, research papers, Wikipedia, etc to better understand a notion covered in class. If you do so you have to properly cited it in any submitted work. Failure to do this is plagiarism and is serious violation of the GMU Honor Code and basic scientific ethics, and will not be tolerated. Note that it is not OK to search for solutions to HW problems online.
For additional information on: Academic Standards, Accommodations for students with disabilities, FERPA rules and Title IX resources please refer to the official GMU Common Course Policies.